Skip to content

Latest commit

 

History

History

0775-Global and Local Inversions

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 

775. Global and Local Inversions

You are given an integer array nums of length n which represents a permutation of all the integers in the range [0, n - 1].

The number of global inversions is the number of the different pairs (i, j) where:

  • 0 <= i < j < n
  • nums[i] > nums[j]

The number of local inversions is the number of indices i where:

  • 0 <= i < n - 1
  • nums[i] > nums[i + 1]

Return trueif the number of global inversions is equal to the number of local inversions.

Example 1:

Input: nums = [1,0,2] Output: true Explanation: There is 1 global inversion and 1 local inversion. 

Example 2:

Input: nums = [1,2,0] Output: false Explanation: There are 2 global inversions and 1 local inversion. 

Constraints:

  • n == nums.length
  • 1 <= n <= 105
  • 0 <= nums[i] < n
  • All the integers of nums are unique.
  • nums is a permutation of all the numbers in the range [0, n - 1].

Solutions (Ruby)

1. Solution

# @param {Integer[]} nums# @return {Boolean}defis_ideal_permutation(nums)max=0(2...nums.size).eachdo |i| max=[max,nums[i - 2]].maxreturnfalseifnums[i] < maxendtrueend

Solutions (Rust)

1. Solution

implSolution{pubfnis_ideal_permutation(nums:Vec<i32>) -> bool{letmut max = 0;for i in2..nums.len(){ max = max.max(nums[i - 2]);if nums[i] < max {returnfalse;}}true}}
close